<?xml version = '1.0' encoding = 'UTF-8'?>
<HBRRepo><variables><variable name="ScenarioVar" type="member" usage="const" id="2" product="Planning"><property name="application">SalesPln</property><property name="plantype">OEP_GSP</property><property name="customized">true</property><property name="dimension">Scenario</property><property name="dimensionInputMode">name</property><property name="display_label">ScenarioVar</property><property name="prompt_text">Scenario</property><property name="scope">87654321</property><property name="seeded">true</property><property name="seedLockBrokenBy">epm_default_cloud_admin</property><value>"OEP_Forecast"</value></variable><variable name="VersionVar" type="member" usage="const" id="1" product="Planning"><property name="application">SalesPln</property><property name="plantype">OEP_GSP</property><property name="dimension">Version</property><property name="display_label">VersionVar</property><property name="prompt_text">ID_PRMTEXT_GSP_VERSION</property><property name="scope">87654321</property><property name="seeded">true</property><value>OEP_Working</value></variable></variables><rulesets/><rules><rule id="1" name="OGS_PushToReporting" product="Planning"><property name="application">SalesPln</property><property name="plantype">OEP_GSP</property><property name="customized">true</property><property name="seeded">true</property><property name="seedLockBrokenBy">epm_default_cloud_admin</property><variable_references><variable_reference name="ScenarioVar" id="2"><property name="application">SalesPln</property><property name="hasvalue">true</property><property name="hidden">false</property><property name="plantype">OEP_GSP</property><property name="rule_name">OGS_PushToReporting</property><property name="seq">1</property><property name="type">3</property><property name="useAsOverrideValue">false</property><property name="value">"OEP_Forecast</property></variable_reference><variable_reference name="VersionVar" id="1"><property name="application">SalesPln</property><property name="hasvalue">true</property><property name="hidden">false</property><property name="plantype">OEP_GSP</property><property name="rule_name">OGS_PushToReporting</property><property name="seq">2</property><property name="type">3</property><property name="useAsOverrideValue">false</property><property name="value">"OEP_Working Bottom Up"</property></variable_reference></variable_references><script type="groovy">if(!operation.grid.hasSmartPush("Push_to_Reporting"))
    return

/*RTPS:{VersionVar} {ScenarioVar} */
Set&lt;String> territory = []
Set&lt;String> accounts = []
Set&lt;String> product = []
List&lt;String> measures = []
Set&lt;String> periods = []
Set&lt;String> years=[]
boolean isCurrencyApp= false
Set&lt;String> currency=[]

List&lt;Dimension> dims = operation.application.getDimensions(rule.cube)
Map&lt;String, String> smartPushEntries = new HashMap&lt;String, String>()
Map&lt;String, Set&lt;String>> customEntries = new HashMap&lt;String, Set&lt;String>>()
String entityDimName
String accountDimName
String currencyDimName

operation.grid.dataCellIterator('OEP_Adjustment (+/-)').each { DataCell cell ->
    if(cell.edited) {
		periods &lt;&lt; cell.periodName 
        measures &lt;&lt; cell.accountName
        years &lt;&lt;cell.yearName
        
        for(Dimension dim : dims) {
          if(dim.getType() == DimensionType.CUSTOM &amp;&amp; dim.getName() != "Plan Element"){
          	  Set&lt;String> custom = []
          	  custom &lt;&lt; cell.getMemberName(dim.getName())
              customEntries.put(dim.getName(), custom)
          }
          if(dim.getType() == DimensionType.ENTITY){
          	  entityDimName = dim.getName()
              territory &lt;&lt; cell.getMemberName(dim.getName())
          }
          if(dim.getType() == DimensionType.ACCOUNT){
          	  accountDimName = dim.getName()
          }    
          
          if (dim.getType()==DimensionType.CURRENCY){
               isCurrencyApp=true;
              currency &lt;&lt; cell.getMemberName(dim.getName())
         }
       }
    }
}

if('OEP_Adjustment (+/-)') {
    // Push data to the reporting cube for edited cells only
	String periodsStr = """\"${periods.join('", "')}\""""   
    String yearsStr = """\"${years.join('", "')}\""""
    String territoryStr = """\"${territory.join('", "')}\""""
    String measuresStr = """\"${measures.join('", "')}\""""
    if (isCurrencyApp==true){
    String currencyStr = """\"${currency.join('", "')}\""""
    smartPushEntries.put("Currency", currencyStr)
    }
    
    smartPushEntries.put("Period", periodsStr)
    smartPushEntries.put("Years", yearsStr)
    smartPushEntries.put(entityDimName, territoryStr)
    smartPushEntries.put(accountDimName, measuresStr)
  
    customEntries.each{
    	String customStr = """\"${it.value.join('", "')}\""""
        smartPushEntries.put(it.key, customStr)
    }
    operation.grid.getSmartPush("Push_to_Reporting").execute(smartPushEntries)
}</script></rule></rules><components/><deployobjects><deployobject product="2" application="salespln" plantype="oep_gsp" obj_id="1" obj_type="1" name="OGS_PUSHTOREPORTING"/></deployobjects></HBRRepo>